package io.gimo.study.design_pattern.factory.abstract_factory.product;


import io.gimo.study.design_pattern.factory.abstract_factory.Sortor;

import java.util.Arrays;

public class InsertionSortor implements Sortor {

	@Override
	public void sort(int[] target) {
		//数组为空，或者长度小于二时，可以不进行排序
		if (target == null || target.length < 2) 
			return;
		//从数组的第二个元素开始循环将数组中的元素插入
		for (int i = 1; i < target.length; i++) {
			//设置数组中的第2个元素为第一次循环要比较的数据
			int temp = target[i];
			int pos = i;
			for (int j = i - 1; j >= 0; j--) {
			    //如果要比较的元素小于第j个元素,就将第j个元素向后移动
				if (target[j] > temp) {
					target[j + 1] = target[j];
					pos -= 1;
				} else 
	                break;	    
			}
			target[pos] = temp;
		}
		System.out.println(Arrays.toString(target));
	}

}
